// SPDX-License-Identifier: GPL-2.0
/* Copyright (c) 2024 */

#ifndef __SCX_HELLO_COMMON_H
#define __SCX_HELLO_COMMON_H

#define MAX_TOP_THREADS 10

/*
 * 用户态和内核态之间共享的消息结构
 */
struct scx_hello_message {
    char message[256]; // 消息内容
    bool new_message;  // 标记是否有新消息
};

/*
 * LLC 缓存未命中率线程信息结构
 */
struct llc_miss_thread {
    int tid;                // 线程ID
    double miss_ratio;     // LLC缓存未命中率
};

/*
 * 用户态和内核态之间共享的 LLC 缓存未命中率 top 线程信息
 */
struct scx_hello_llc_info {
    struct llc_miss_thread threads[MAX_TOP_THREADS]; // top线程信息
    int count;                                       // 实际线程数量
    bool new_data;                                   // 标记是否有新数据
};

#endif  // __SCX_HELLO_COMMON_H